#ifndef MOCHA_DETAIL_IMPORTED_GRAPHICS_PLUGIN_HPP_INCLUDED
#define MOCHA_DETAIL_IMPORTED_GRAPHICS_PLUGIN_HPP_INCLUDED

/**
 * @file
 */

#include <cstdint>
#include "mocha/graphics_plugin.hpp"
#include "mocha/imported_object.hpp"

namespace mocha { namespace graphics {
class imported_graphics_plugin : public imported_object<c_graphics_plugin>, public graphics_plugin {
public:
	imported_graphics_plugin(c_graphics_plugin* object, mocha_plugin_destroy_func_t destroy);
	virtual ~imported_graphics_plugin();
	virtual const plugin_char_t* type_name() const;
	virtual std::int32_t capabilities(graphics_caps& caps) const;
	virtual std::int32_t open_display_mode(std::uint32_t width, std::uint32_t height, bool full);
	virtual std::int32_t swap_buffers();
	virtual std::int32_t clear_back_buffer(rgba_t cc);
};
}}

#endif

